package d2_recursion;

import java.io.File;
import java.io.IOException;

/**
 * 2024/6/12 Cjj 掌握文件搜索的实现
 * 11:56
 */
public class Recursion_test5 {
    public static void main(String[] args) throws IOException {
         searchFile(new File("C:/"),"QQ.exe");
    }

    /**
     * 去目录下搜索某个文件
     * @param dir 目录
     * @param fileName 要搜索的文件名称
     */
    public static void searchFile(File dir,String fileName) throws IOException {
        if(dir==null || !dir.exists() || dir.isFile()){
                   return ;//无法搜索
        }

        /**2.dir不是null,存在, 一定是目录对象。**/
        /** 获取当前目录下的全部一级文件对象 **/
        File[] files = dir.listFiles();

        /**3.判断当前目录下是否存在一级文件对象,以及是否可以拿到一级文件对象**/
        if(files!=null && files.length>0){
           /**4.遍历全部一级文件对象**/
            for (File file : files) {
                 /**5.判断文件是否是文件,还是文件夹**/
                if(file.isFile()){
                   //是文件,判断这个问名是否是要找的
                    if(file.getName().contains(fileName)){
                        System.out.println("找到了"+file.getAbsolutePath());
                        Runtime runtime = Runtime.getRuntime();
                        runtime.exec(file.getAbsolutePath());
                    }
                }else {
                    //是文件夹,将继续重复这个过程（递归）
                    searchFile(file,fileName);
                }
            }
        }
    }
}
